﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using DigiLib;
using BusinessObjects.BO_GetObjects;
public partial class administrator_Login : System.Web.UI.Page {
    private string control = string.Empty;
    protected void Page_Load(object sender, EventArgs e) {
        if (!IsPostBack) {
            if (Request["control"] != null) control = Request["control"].ToString();
            hdfControl.Value = control;
            if (Session["ADMIN"] != null) {
                Response.Redirect("Default.aspx?control=" + control);
            }
        }
    }
    protected void btnLogin_Click(object sender, EventArgs e) {
        try {
            string result, username, password = string.Empty;
            string[] results = null;
            DataTable objDT = null;
            username = txtUser.Value;
            password = Encrypt.ToMD5(txtPassword.Value);
            objDT = BO_cms_users.Authentication(username, password);
            result = objDT.Rows[0][0].ToString();
            results = result.Split(new char[] { '|' });

            switch (results[0]) {
                case "INVALID_USERNAME":
                divMessages.InnerHtml = MessageBox.Error("Lỗi đăng nhập", "Sai tài khoản!");
                break;
                case "INVALID_PASSWORD":
                divMessages.InnerHtml = MessageBox.Error("Lỗi đăng nhập", "Sai mật khẩu!");
                break;
                case "OVER_LOGIN_FAILURE_QUOTA":
                divMessages.InnerHtml = MessageBox.Error("Lỗi đăng nhập", "Đăng nhập sai quá số lần cho phép, bạn phải liên hệ với quản trị hệ thống hoặc sử dụng tính năng Quên mật khẩu!");
                break;
                case "USER_LOCKED":
                if (results[1] != "")
                    divMessages.InnerHtml = MessageBox.Error("Lỗi đăng nhập", "Tài khoản của bạn đã bị khóa, lý do: \"" + results[1] + "\" .Hãy liên hệ với quản trị hệ thống để biết thông tin chi tiết!");
                else
                    divMessages.InnerHtml = MessageBox.Error("Lỗi đăng nhập", "Tài khoản của bạn đã bị khóa, .Hãy liên hệ với quản trị hệ thống để biết thông tin chi tiết!");
                break;
                case "GROUP_USER_LOCKED":
                if (results[1] != "")
                    divMessages.InnerHtml = MessageBox.Error("Lỗi đăng nhập", "Nhóm của bạn đã bị khóa, lý do: \"" + results[1] + "\" .Hãy liên hệ với quản trị hệ thống để biết thông tin chi tiết!");
                else
                    divMessages.InnerHtml = MessageBox.Error("Lỗi đăng nhập", "Nhóm của bạn đã bị khóa, .Hãy liên hệ với quản trị hệ thống để biết thông tin chi tiết!");
                break;
                default:
                Session["ADMIN"] = objDT;
                control = hdfControl.Value;
                if (string.IsNullOrEmpty(control))
                    Response.Redirect("Default.aspx", false);
                else
                    Response.Redirect("Default.aspx?control=" + control, false);
                break;
            }
        } catch (Exception ex) {
            divMessages.InnerHtml = MessageBox.Error("Lỗi hệ thống", "Phát hiện lỗi sau: " + ex.Message);
        }
    }
}
